$(function () {//加载表格
    $('#dg').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: reportworld + '/demandBugInfo/listInfo',
        pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        title: "需求BUG列表",
        pageSize: pageSize,
        pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            startDate: $("#startDate").combobox("getValue"),
            endDate: $("#endDate").combobox("getValue")
        },
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '编号', hidden: true},
            {field: 'status', title: '状态', hidden: true},
            {field: 'demandBugNum', title: '需求/BUG编号'},
            {
                field: 'demandBugType', title: '需求/BUG',
                formatter: function (value, row, index) {
                    if (1 == value) {
                        return "需求";
                    } else {
                        return "BUG";
                    }
                }
            },
            {
                field: 'demandBugFsource', title: '需求/BUG来源',
                formatter: function (value, row, index) {
                    if (1 == value) {
                        return "外部";
                    } else {
                        return "内部";
                    }
                }
            },
            {field: 'demandBugDate', title: '日期'},
            {field: 'description', title: '说明', width: 600},
            {field: 'version', title: '版本号'},
            {field: 'strStatus', title: '状态'},
            {field: 'addUser', title: '添加人'},
            {field: 'addTime', title: '添加时间'},
            {field: 'editUser', title: '修改人'},
            {field: 'editTime', title: '修改时间'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        },
        //表格样式
        rowStyler: function (index, row) {
            return rowStyler(row.status);
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            view(rowData)
        }
    }).datagrid("columnMoving");
    initData();
    $("#startDate").datebox({
        onSelect: function (beginDate) {
            $('#endDate').datebox().datebox('calendar').calendar({
                validator: function (date) {
                    return beginDate <= date;
                }
            });
            $("#endDate").datebox("setValue", beginDate.getFullYear() + '-' + (beginDate.getMonth() + 1) + '-' + beginDate.getDate());
        }
    });
    // 初始赋值当前月的第一天到最后一天
    var date = new Date();
    var monthDate = new Date(date.getFullYear(), date.getMonth(), 1);
    var ctime = monthDate.getFullYear() + '-' + (monthDate.getMonth() + 1) + "-" + monthDate.getDate();
    $("#startDate").datebox("setValue", ctime);
    var MonthNextFirstDay = new Date(date.getFullYear(), date.getMonth() + 1, 1);
    var lastDay = new Date(MonthNextFirstDay - 86400000);
    var ctimeone = lastDay.getFullYear() + '-' + (lastDay.getMonth() + 1) + '-' + lastDay.getDate();
    $("#endDate").datebox("setValue", ctimeone);
})

// 初始化加载下拉框的值
function initData() {
    $.ajax({
            type: "post",
            url: reportworld + "/demandBugInfo/init",
            dataType: "json",
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //状态
                var listStatus = data.data.listStatus;
                //版本号
                var listVersion = data.data.listVersion;
                if (!isNull(listStatus)) {  //状态
                    var listStatus2 = data.data.listStatus2;
                    listStatus2.unshift({"showmsg": "==全部==", "value": ''});
                    $("#selStatus").combobox("loadData", listStatus2);
                    $("#demandBugInfoStatus").combobox("loadData", listStatus);
                }
                if (!isNull(listVersion)) {  //版本号
                    var listVersion2 = data.data.listVersion2;
                    listVersion2.unshift({"showmsg": "==全部==", "value": ''});
                    $("#selVersion").combobox("loadData", listVersion2);
                    $("#demandBugInfoVersion").combobox("loadData", listVersion);
                }
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}


//搜索的方法
function doSearch() {
    var queryParams = $("#dg").datagrid("options").queryParams;
    queryParams["status"] = $('#selStatus').combobox('getValue');
    queryParams["version"] = $('#selVersion').combobox('getValue');
    queryParams["demandBugNum"] = $('#selDemandBugNum').val();
    queryParams["startDate"] = $('#startDate').combobox('getValue');
    queryParams["demandBugType"] = $('#selDemandBugType').combobox('getValue');
    queryParams["endDate"] = $('#endDate').combobox('getValue');
    $("#dg").datagrid("options").queryParams = queryParams;
    $("#dg").datagrid("load");
}

/**
 *  查看方法
 */
function view(rowData) {
    $('#myform').form('disableValidation');//清除验证样式
    $('#dlg').dialog({
        title: "查看需求BUG信息",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myform').form('load', rowData);//页面赋值
}


/**
 * 新增需求BUG信息方法
 */
function addDemandBugInfo() {
    $("#myform").form('clear');//添加之前清空表达信息
    $('#myform').form('enableValidation');//设置验证样式
    $('#dlg').dialog({
        title: "新增需求BUG信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemDemandBugInfo(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#demandBugInfoStatus').combobox('selectedIndex', 0); //选中第一个
    $('#demandBugInfoVersion').combobox('selectedIndex', 0); //选中第一个
    $('#demandBugType').combobox('selectedIndex', 0); //选中第一个
    $('#demandBugFsource').combobox('selectedIndex', 0); //选中第一个
    var now = new Date();
    var date = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate();
    $('#demandBugDate').datebox("setValue", date);
}

/**
 * 修改需求bug方法
 */
function editDemandBugInfo() {
    $('#myform').form('enableValidation');//设置验证样式
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $('#dlg').dialog({
        title: "修改需求BUG信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemDemandBugInfo(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg').dialog('close');
            }
        }
        ]
    }).dialog('open');
    // 赋值原来编号
    $("#demandBugNumFirst").val(arr[0].demandBugNum);
    $('#myform').form('load', arr[0]);//页面赋值
}

/**
 * 判断需求BUG编号是不是已经存在
 * @lsetlist name
 */
$.extend($.fn.validatebox.defaults.rules, {
    checkDemandBug: {
        validator: function (value, param) {
            //修改页面，没有修改也提示存在的问题
            var name = $("#" + param[0]).val();
            if (value.toUpperCase() == name.toUpperCase()) {
                return true;
            }
            return checkDemandBugInfo(value)
        },
        message: '{1}'
    }
});


/**
 * 判断需求BUG编号是不是已经存在
 * @lsetlist name
 */
function checkDemandBugInfo(demandBugNum) {
    var falg = true;
    $.ajax({
        url: reportworld + "/demandBugInfo/checkDemandBugInfo",
        method: 'post',
        async: false,
        data: {
            "demandBugNum": demandBugNum,
            "demandBugType": $("#demandBugType").combobox("getValue")
        },
        success: function (data) {
            if (successcode != data.code) {
                return errorHandle(data);
            }
            if (data.data == false) {
                falg = false;//标识已经存在
            }
        }, error: function (data) {
            $.messager.progress('close');
            $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
        }
    });
    return falg;
}


/**
 * 保存需求BUG信息的方法
 */
function saveItemDemandBugInfo(ftype) {
    //验证表单信息
    if (!$("#myform").form('validate')) { //验证表单信息
        return;
    }
    var url = reportworld + "/demandBugInfo/editDemandBugInfo";
    if (1 == ftype) {
        url = reportworld + "/demandBugInfo/addDemandBugInfo";
    }
    $.messager.confirm('系统提示', "确定保存需求BUG信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        $('#myform').form('submit', {
            url: url,
            onSubmit: function (param) {
                //验证表单信息
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                try {
                    data = JSON.parse(data);
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    //关闭弹出窗口
                    $('#dlg').dialog('close');
                    $.messager.show({title: '系统提示', msg: data.message});
                    $("#dg").datagrid("load");//刷新表格
                } catch (e) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        });
    });
}

/**
 * 删除需求BUG信息方法
 */
function delDemandBugInfo() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除这' + arr.length + '条操需求BUG信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: reportworld + "/demandBugInfo/delDemandBugInfo",
                dataType: "json",
                data: {
                    ids: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dg").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );
    });
}


/**
 * 读取文件
 * @param fileName
 */
function setFilePreview(fileName) {
    $.messager.confirm('系统提示', "确定导入相关需求信息吗？", function (parm) {
        if (!parm) {
            return;
        }
        $('#subFile').form('submit', {
            url: reportworld + "/demandBugInfo/readDemandBugInfo",
            onSubmit: function (param) {
                $.messager.progress({text: '正在处理中...'});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                $("#uploadFile").val("");
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $('#msgInfoDialog').dialog({
                    title: "读取文件信息",
                    buttons: [{
                        text: '返回',
                        iconCls: 'icon-back',
                        handler: function () {
                            $('#msgInfoDialog').dialog('close');
                        }
                    }
                    ]
                }).dialog('open');
                $("#msgInfo").textbox('setValue', data.data.msgInfo);
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $("#uploadFile").val("");
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}
